package hottargui.framework;

/**
 * Tile represents a single territory tile of a given type.
 * 
 * Responsibilities: 1) Know its type and position on the board. 2) Know its
 * owner and the number of units on it. 3) Know its economical value 4) Know its
 * strategic value
 * 
 */

public interface Tile {

	/**
	 * return position of this tile on the board.
	 * 
	 * @return position of tile.
	 */
	public Position getPosition();

	/**
	 * return the color of the player who owns this tile.
	 * 
	 * @return color of owner, may be NONE.
	 */
	public PlayerColor getOwnerColor();

	/**
	 * return the number of units on this tile.
	 * 
	 * @return the number of units on this tile.
	 */
	public int getUnitCount();

	/**
	 * return the type of this tile: one of the enumeration constants:
	 * TileType.Settlement etc.
	 * 
	 * @return tile type.
	 */
	public TileType getType();

	/**
	 * Added by Claus Frederiksen Sets the owner color for the tile
	 * 
	 * @param color
	 *            the specific color to apply
	 */

	public void setOwnerColor(PlayerColor color);

	public void setUnitCount(int units);

}
